package com.cby.operation.pay.bean

import android.os.Parcel
import android.os.Parcelable

/**
 * Description:支付结果
 *
 * @author 陈宝阳
 * @create 2020/8/6 14:46
 */
data class PayResult(

    /**
     * 结果code
     */
    var resultCode: Int = 0,

    /**
     * 支付的结果描述
     */
    var message: String? = null,

    /**
     * 支付信息
     */
    var payInfo: PayInfo? = null,

    /**
     * 支付渠道
     */
    var payChannel: String? = null,

    /**
     * 支付订单（服务端后台的订单号，非游戏方传入）
     */
    var orderId: String? = null
) : Parcelable {

    val isSuccess: Boolean
        get() = resultCode == 9000

    constructor(parcel: Parcel) : this(
        parcel.readInt(),
        parcel.readString(),
        parcel.readParcelable(PayInfo::class.java.classLoader),
        parcel.readString(),
        parcel.readString()
    ) {}

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeInt(resultCode)
        parcel.writeString(message)
        parcel.writeParcelable(payInfo, flags)
        parcel.writeString(payChannel)
        parcel.writeString(orderId)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<PayResult> {
        override fun createFromParcel(parcel: Parcel): PayResult {
            return PayResult(parcel)
        }

        override fun newArray(size: Int): Array<PayResult?> {
            return arrayOfNulls(size)
        }
    }

}